Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Strukturierter Text</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Strukturierter_Text"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Strukturierter_Text rootpage-Strukturierter_Text skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Strukturierter Text</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Der <b>strukturierte Text</b> (engl. <b>Structured Text</b>, Abkürzung: <b>ST</b>; in Siemens S7 auch engl. <b>Structured Control Language</b>, Abkürzung <b>SCL</b>) ist eine <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> für <a href="Speicherprogrammierbare_Steuerung" title="Speicherprogrammierbare Steuerung">Speicherprogrammierbare Steuerungen</a> (SPS).
Die Norm <a href="EN_61131" title="EN 61131">EN 61131</a>-3 legt neben anderen auch den Sprachumfang von ST fest. Dabei ist die Syntax der Sprachelemente ähnlich denen der <a href="H%C3%B6here_Programmiersprache" title="Höhere Programmiersprache">Hochsprache</a> <a href="Pascal_(Programmiersprache)" title="Pascal (Programmiersprache)">Pascal</a> und es wird wie bei allen Sprachen der EN 61131-3 bei <a href="Schl%C3%BCsselwort_(Programmierung)" title="Schlüsselwort (Programmierung)">Schlüsselwörtern</a> keine Unterscheidung zwischen Groß- und Kleinschreibung gemacht (Case Insensitive).
</p><p>ST bietet mehr Strukturierungsmöglichkeiten als <a href="Anweisungsliste" title="Anweisungsliste">AWL</a> und löst diese daher immer mehr ab. Komplexe Algorithmen und mathematische Funktionen lassen sich in ST übersichtlicher und schneller programmieren.<sup id="cite_ref-:0_1-0" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>

<div class="mw-heading mw-heading2"><h2 id="Sprachelemente_Strukturierter_Text">Sprachelemente Strukturierter Text</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Zuweisung">Zuweisung</h3></div>
<p>Als Zuweisungsoperator wird im Strukturierten Text „:=“ verwendet.
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span> Wert&nbsp;:= Wert1 + Wert2;
</pre></div>
<p>Dem Operanden auf der linken Seite, wird der Wert des Ausdruckes auf der rechten Seite zugewiesen. Der Zuweisungsoperator ist nicht mit dem <a href="Vergleichsoperator" title="Vergleichsoperator">Vergleichsoperator</a> „=“ zu verwechseln. Jede Anweisung wird mit einem Semikolon abgeschlossen.
</p>
<div class="mw-heading mw-heading3"><h3 id="IF-Statement">IF-Statement</h3></div>
<p>Mit IF-Anweisungen lassen sich Anweisungen programmieren, die von Bedingungen abhängig sind. Die Bedingungen werden der Reihe nach geprüft. Ist Bedingung1 der IF-Anweisung wahr, wird die Bedingung des ELSIF-Zweiges nicht mehr überprüft.
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>IF Bedingung1 THEN
Anweisung1;
ELSIF Bedingung2 THEN
Anweisung2;
ELSE
Anweisung3;
END_IF;
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="CASE-Statement">CASE-Statement</h3></div>
<p>Mit einem CASE-Statement lassen sich mehrere bedingte Anweisungen programmieren, die alle von der gleichen Bedingungsvariable abhängig sind.<sup id="cite_ref-:1_2-0" class="reference"><a href="#cite_note-:1-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Nimmt die Bedingungsvariable keinen der angegebenen Werte an, wird der ELSE-Zweig ausgeführt.
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span> CASE Bedingungsvariable OF
1&nbsp;: Anweisung1;
2&nbsp;: Anweisung2;
3&nbsp;: Anweisung3;
ELSE Anweisung4;
END_CASE;
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="FOR-Statement">FOR-Statement</h3></div>
<p>Mit Hilfe von For-Schleifen lassen sich wiederholende Vorgänge programmieren.<sup id="cite_ref-:0_1-1" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Dabei wird die Anweisung in der Schleife so oft wiederholt, bis die Variable i den Endwert überschreitet. Bei jedem Schleifendurchlauf wird die Variable um eine Schrittweite erhöht.
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>FOR i&nbsp;:= 0 TO 499 BY 1 DO
Zahl&nbsp;:= Zahl +1;
D[i]&nbsp;:= Zahl;
END_FOR;
</pre></div>
<p>Im Codebeispiel wird ein Array mit 500 Plätzen beschrieben.
</p>
<div class="mw-heading mw-heading3"><h3 id="WHILE-Statement">WHILE-Statement</h3></div>
<p>Mit WHILE Schleifen lassen sich Vorgänge programmieren, die oft wiederholt werden müssen. Die Anweisung in der Schleife wird wiederholt, solange die Bedingung erfüllt ist. Ist die Anzahl der Schleifendurchläufe bekannt, wird meistens eine FOR Schleife verwendet. Bei einer WHILE Schleife sollte man beachten, dass die Bedingung nicht dauerhaft erfüllt ist. Ansonsten entstehen Endlosschleifen.<sup id="cite_ref-:0_1-2" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span> WHILE Bedingung DO
Anweisung;
END_WHILE;
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="REPEAT-Statement">REPEAT-Statement</h3></div>
<p>Das REPEAT Statement ist einem WHILE Statement sehr ähnlich. Der Unterschied zu einer WHILE Schleife liegt darin, dass die Abbruchbedingung erst nach dem Ausführen der Schleife überprüft wird (C++: do{}/while()).<sup id="cite_ref-:1_2-1" class="reference"><a href="#cite_note-:1-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span> REPEAT
Anweisung;
UNTIL Bedingung
END_REPEAT;
</pre></div>
<p>Im vorliegenden Beispiel wird die Anweisung so lange ausgeführt, bis die Bedingung erfüllt ist. Die Anweisung wird mindestens ein Mal ausgeführt, da die Abbruchbedingung erst nach dem Durchlaufen der Anweisung abgefragt wird.
</p>
<div class="mw-heading mw-heading3"><h3 id="EXIT_Anweisung">EXIT Anweisung</h3></div>
<p>Eine FOR, WHILE, oder REPEAT Schleife kann vorzeitig mit einer EXIT Anweisung verlassen werden.
</p>
<div class="mw-heading mw-heading3"><h3 id="Pointer">Pointer</h3></div>
<p><a href="Zeiger_(Informatik)" title="Zeiger (Informatik)">Pointer</a> enthalten die Adressen des Speicherplatzes von Variablen. Die Adresse einer Variable wird durch den Adressoperator ADR ermittelt. Die Dereferenzierung eines Pointers erfolgt mit Hilfe des Inhaltsoperators „^“.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span> pAdresse &nbsp;:= ADR(Wert1);
Wert2 &nbsp;:= pAdresse^;
</pre></div>
<p>In diesem Beispiel wird der Variable Wert2 der Inhalt der Variable Wert1 mit Hilfe eines Pointers zugewiesen. Die Zuweisung erfolgt über die Dereferenzierung des Pointers pAdresse.
</p>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Dr. Ulrich Becker: <i>Grundlagen der Automatisierungstechnik, Kapitel 13: Einführung in die Programmiersprache Strukturierter Text (ST)</i></li>
<li>Karl Schmitt: <i>SPS-Programmierung mit ST: nach IEC 6113 mit CoDeSys und mit Hinweisen zu STEP 7 im TIA-Portal</i>. Vogel Business Media 2015, ISBN 978-3-8343-3369-8</li>
<li>Ulrich Kanngießer: <i>Programmierung mit Strukturierter Text: Steuerungs-Funktionsbausteine mit ST oder SCL einfach und schnell erstellen. Für Ein- und AWL-Umsteiger</i>. VDE VERLAG 2014, ISBN 978-3-8007-3463-4</li>
<li>Heinrich Lepers: <i>SPS-Programmierung nach IEC 61131-3</i>. 4. Auflage. Franzis Verlag. Haar 2011, ISBN 978-3-645-65092-2</li>
<li>3S – Smart Software Solutions GmbH: Handbuch für SPS Programmierung mit CoDeSys 2.3: <a rel="nofollow" class="external free" href="https://www.wago.com/wagoweb/documentation/759/ger_manu/333/m07590333_00000000_1de.pdf">https://www.wago.com/wagoweb/documentation/759/ger_manu/333/m07590333_00000000_1de.pdf</a> (abgerufen am 29. April 2017)</li>
<li>Tom Mejer Antonsen (2018), "PLC Controls with Structured Text (ST): IEC 61131-3 and best practice ST programming” ISBN 978-87-430-0241-3, ISBN 978-87-430-0242-0, ISBN 978-87-430-0637-4 (E-Book)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-:0-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-:0_1-0">a</a></sup> <sup><a href="#cite_ref-:0_1-1">b</a></sup> <sup><a href="#cite_ref-:0_1-2">c</a></sup></span> <span class="reference-text"><span class="cite">Ulrich Becker: <a rel="nofollow" class="external text" href="https://docplayer.org/16440628-13-einfuehrung-in-die-programmiersprache-strukturierter-text-st.html"><i>Einführung in die Programmiersprache Strukturierter Text (ST).</i></a> (PDF)<span class="Abrufdatum"> Abgerufen am 9.&nbsp;August 2018</span> (Seite existiert nicht mehr unter dem angegebenen Link).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AStrukturierter+Text&amp;rft.title=Einf%C3%BChrung+in+die+Programmiersprache+Strukturierter+Text+%28ST%29&amp;rft.description=Einf%C3%BChrung+in+die+Programmiersprache+Strukturierter+Text+%28ST%29&amp;rft.identifier=https%3A%2F%2Fdocplayer.org%2F16440628-13-einfuehrung-in-die-programmiersprache-strukturierter-text-st.html&amp;rft.creator=Ulrich+Becker">&nbsp;</span></span>
</li>
<li id="cite_note-:1-2"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-:1_2-0">a</a></sup> <sup><a href="#cite_ref-:1_2-1">b</a></sup></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.wago.com/wagoweb/documentation/759/ger_manu/333/m07590333_00000000_1de.pdf"><i>Handbuch für SPS Programmierung mit CoDeSys 2.3.</i></a> (PDF)<span class="Abrufdatum"> Abgerufen am 21.&nbsp;Juni 2017</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AStrukturierter+Text&amp;rft.title=Handbuch+f%C3%BCr+SPS+Programmierung+mit+CoDeSys+2.3&amp;rft.description=Handbuch+f%C3%BCr+SPS+Programmierung+mit+CoDeSys+2.3&amp;rft.identifier=https%3A%2F%2Fwww.wago.com%2Fwagoweb%2Fdocumentation%2F759%2Fger_manu%2F333%2Fm07590333_00000000_1de.pdf">&nbsp;</span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://infosys.beckhoff.de/index.php?content=../content/1031/TcPlcControl/HTML/TcPlcCtrl_POINTER.htm&amp;id="><i>Beckhoff Information System - German.</i></a><span class="Abrufdatum"> Abgerufen am 22.&nbsp;Mai 2017</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AStrukturierter+Text&amp;rft.title=Beckhoff+Information+System+-+German&amp;rft.description=Beckhoff+Information+System+-+German&amp;rft.identifier=https%3A%2F%2Finfosys.beckhoff.de%2Findex.php%3Fcontent%3D..%2Fcontent%2F1031%2FTcPlcControl%2FHTML%2FTcPlcCtrl_POINTER.htm%26id%3D">&nbsp;</span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-09-12" href="https://de.wikipedia.org/wiki/?title=Strukturierter_Text&amp;oldid=259686390">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>